A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Az Advanced Message Queuing Protocol (AMQP) egy alkalmazási réteg protokoll, amely üzenet orientált middleware-ek működését határozza meg. Az AMQP meghatározó értékei: üzenet központúság, sorkezelés, üzenetirányítás, megbízhatóság, biztonság. Az AMQP 5 különböző üzenettovábbítási mintát támogat, amelyekkel pont-pont és különböző publikálás-feliratkozás típusú kommunikációs mintákat is támogat. Az AMQP 1.0 ISO szabvány (ISO/IEC 19464:2014 Information technology -- Advanced Message Queuing Protocol (AMQP) v1.0 specification) és OASIS szabvány is (OASIS Advanced Message Queuing Protocol (AMQP)).
Története
Az AMQP fejlesztésének eredeti célja az üznetküldésben a különböző platformok és üzenetbrókerek között jelentkező gyakori együttműködési problémák megoldása volt. Az AMQP-t eredetileg 2003-ban John O ' Hara fejlesztette JPMorgan Chase-nél, Londonban.[1] Első "éles" alkalmazása a JP Morgen-nél volt, 2006-ban. Ma a specifikációt az AMQP working group fejleszti, amelynek 23 tagja van, elsősorban a pénzügyi és technológiai szektorokból.
Összevetés a JMS-szel
Gyakori kérdés, hogy a JMS és az AMQP közötti különbség miben is áll?
A JMS egy olyan szabvány, amelynek célja, hogy a Java platformon szabványos felületet nyújtson különböző üzenetbrókerek eléréséhez. Nem célja ugyanakkor, hogy a Javától eltérő platformokkal vagy nyelvekkel való együttműködést támogassa. Ezért a Java és más nyelvek (pl. .NET vagy Ruby) közötti üzenetalapú együttműködés csak az egyes platformokon támogatott eltérő szabványok (pl. JMS - STOMP) közötti transzformációkon keresztül lehetséges. Ugyan több üzenetbróker is támogat ilyen transzformációkat (pl. az ActiveMQ), ám – mivel az átalakítások nem szabványosított eljárásokon alapulnak – ezek használata esetén a konkrét megoldással szembeni kitettség alakul ki.
Az AMQP célja elsősorban a különböző platformok közötti együttműködési képesség megteremtése. A JMS-sel szemben nem definiál egyetlen nyelvhez sem konkrét programozási felületet (API-t). Ehelyett egy alacsony szintű, bináris protokollt határoz meg, ami arról szól, hogy milyen struktúrában és milyen módon kell egy üzenetet a hálózaton keresztül továbbítani. Az AMQP-üzenetbróker egy olyan program, amely képes a meghatározott formában a feladótól üzeneteket fogadni, és a meghatározott módon azokat a címzetthez továbbítani. Az AMQP kliens egy olyan program, amely képes a meghatározott módon üzeneteket küldeni az AMQP-brókernek, és üzeneteket fogadni tőle. Mivel az üzenetküldés és továbbítás módja, valamint az üzenetek struktúrája teljes mértékben szabványosított, így biztosított, hogy az egyes AMQP-brókerek, illetve kliensek szabadon kicserélhetők tetszőleges másik implementációra.
Az AMQP ugyanakkor -- mint azt már említettük -- nem foglalkozik azzal, hogy az egyes platformokon illetve programnyelveken hogyan kell megvalósítani azt az API-t, amin keresztül a kliens funkciók meghívhatók; ezt a kérdést a kliens fejlesztőjére hagyja, aki így az adott platform és programnyelv sajátosságait figyelembe véve tudja az API-t kifejleszteni.
A fentieken túl a JMS és az AMQP között eltérés van az üzenet irányítás (routing), a támogatott üzenetküldési minták és az üzenet felépítésben is. Ezen különbségek számottevőek, ugyanakkor a két szabvány egymáshoz mégis eléggé hasonlít ahhoz, hogy a köztük végzett transzformáció ne okozzon komolyabb problémát. A JMS széles körű elterjedtsége és támogatása okán az AMQP working groupnál elindult egy kezdeményezés, hogy szabványosítsák a JMS és az AMQP közötti üzenet átalakítást.
Implementációk
AMQP 1.0 bróker megvalósítások
- Apache Qpid, egy nyílt forráskódú projekt az Apache Alapítvány kezelésében
- Apache ActiveMQ, egy nyílt forráskódú projekt az Apache Alapítvány kezelésében
Pre-1.0 AMQP-bróker megvalósítások
- JORAM, a Java nyílt forráskódú megvalósítása az OW2 Konzorcium kezelésében.
- Apache Qpid, amely több AMQP verzióhoz nyújt támogatást[2]
- StormMQ, egy hostolt, kereskedelmi jellegű message queuing szolgáltatás AMQP-alapon.
- RabbitMQ, egy nyílt forráskódú projekt; elsődlegesen az AMQP 0-9-1 verziót támogatja, de kísérleti pluginnel már az 1.0 verzió is használható.
Kliensek
- SwiftMQ AMQP 1.0 Java Client - ingyenes Java Client (AMQP 1.0)
- DE.SETF.AMQP Lisp Client Library (AMQP 0-9-1)
- Spring AMQP (AMQP 0-9-1.)
Jegyzetek
- ↑ Hintjens, Pieter: Background to the AMQ Project, Authors. iMatix Corporation, 2006. február 7. (Hozzáférés: 2018. február 18.)
- ↑ https://web.archive.org/web/20130914045254/http://qpid.apache.org/releases/qpid-0.22/index.html
Fordítás
Ez a szócikk részben vagy egészben az Advanced Message Queuing Protocol című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
További információk
A lap szövege Creative Commons Nevezd meg! – Így add tovább! 3.0 licenc alatt van; egyes esetekben más módon is felhasználható. Részletekért lásd a felhasználási feltételeket.
Advanced Message Queuing Protocol
Alkalmazási réteg
ARP
Avalanche
BitTorrent
Bootstrap Protocol
CAN-busz
Carrier Sense Multiple Access with Collision Detection
Common Address Redundancy Protocol
Csomagszűrés
EDonkey hálózat
File Transfer Protocol
Frame Relay
Fully qualified domain name
Hálózati idő protokoll
Handshaking
Helium Network
IEEE 802.3
Iptables
Locator/Identifier Separation Protocol
MachineKey
Microcom Networking Protocol
Multiprotocol Label Switching
NetBEUI
NetBIOS
NNTP
Power over Ethernet
Protokoll (informatika)
RARP
Referer
Service Location Protocol
Session Initiation Protocol
Signalling Connection Control Part
Simple Network Management Protocol
Simple Service Discovery Protocol
Stellar (fizetési hálózat)
TCP/IP
Telnet
Universal Plug and Play
User Datagram Protocol
Viszonyréteg
Web Services for Remote Portlets
X-Forwarded-For
Xerox Hálózati Rendszerek
A lap szövege Creative Commons Nevezd meg! – Így add tovább! 3.0 licenc alatt van; egyes esetekben más módon is felhasználható. Részletekért lásd a felhasználási feltételeket.